import axios from "axios";
// 引入进度条插件
import NProgress from "nprogress";
import "nprogress/nprogress.css";

// 使用axios.create()方法创建一个axios实例
const requestMock = axios.create({
  // 复用的路径(也就是每一个请求都有的路径，这样就不用每一个请求都写这个路径了)
  baseURL: "/mock",
  // 请求超时时间，超过这个时间自动中断请求
  timeout: 10000,
  // 设置请求头信息
  headers: {},
});

// 请求拦截器
requestMock.interceptors.request.use(
  // 成功
  (config) => {
    // 开始进度条
    NProgress.start();
    return config;
  }
);

// 响应拦截器
requestMock.interceptors.response.use(
  (response) => {
    // 结束进度条
    NProgress.done();
    // response就是服务器的响应结果
    // 如果响应状态码是200，说明请求成功
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      // 功能失败
      alert(response.data.message);
      return Promise.reject(response.data.message);
    }
  },
  // 请求失败
  (error) => {
    // 结束进度条
    NProgress.done();
    alert(error);
    return Promise.reject(error);
  }
);

export default requestMock;
